package com.warren.context.support;


import com.warren.error.BeansException;

/**
 * @author warren
 * @create 2021-08-19 22:00
 * @Description
 */
public class ClassPathXmlApplicationContext extends AbstractXmlApplicationContext{
    /**
     * ClassPathXmlApplicationContext，是具体对外给用户提供的应用上下文方法。
     *  在继承了  AbstractXmlApplicationContext  以及层层抽象类的功能分离实现后，在
     * 此类  ClassPathXmlApplicationContext  的实现中就简单多了，主要是对继承抽象类
     * 中方法的调用和提供了配置文件地址信息
     */

    private String[] configLocations;

    public ClassPathXmlApplicationContext() {
    }

    public ClassPathXmlApplicationContext(String configLocations)throws BeansException{
        this(new String[]{configLocations});
    }

    /**
     * 从 XML 中加载 BeanDefinition，并刷新上下文
     * @param configLocations
     * @throws BeansException
     */
    public ClassPathXmlApplicationContext(String[] configLocations)throws BeansException{
        this.configLocations = configLocations;
        refresh();
    }

    @Override
    public String[] getConfigLocations() {
        return configLocations;
    }


}
